![]() メッセージング・ネットワークにおけるメッセージ配布の方法、システム、装置およびコンピュータ・プログラム
专利摘要:
メッセージング・ネットワークにおけるメッセージ配布の方法およびシステムを提供する。本発明のシステムは消費される前にアプリケーションにより識別可能なメッセージのための複製キュー451を提供する。複製キュー451は複数のメッセージ管理システム411ないし413上に定義される。複数のメッセージ管理システム411ないし413のうちの任意の一つを介してアクセス可能な複数の複製キュー451の各々にメッセージが送られる。本発明の方法は一意的な識別子を含むメッセージを生成し、複数の複製キュー451の各々に前記メッセージを書き込む。なお、前記メッセージはメッセージを読む前にその一意的な識別子により識別可能である。 公开号:JP2011511976A 申请号:JP2010543469 申请日:2009-01-19 公开日:2011-04-14 发明作者:ヴァンストーン、イアン、チャールズ;バンクス、アンドリュー、デーヴィッド;ベアダル、ギャヴィン、デーヴィッド;ホブソン、ステファン、ジェームズ 申请人:インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation; IPC主号:G06F9-54
专利说明:
[0001] 本発明はメッセージング・ネットワークにおけるメッセージ配布の技術分野に関し、特にコンシューマー(consumer)により消費される(consumed)前に一意的に識別され得るメッセージの配布に関する。] 背景技術 [0002] 消費される前に一意的に識別され得るメッセージの例はリクエスト/応答システムにおける応答メッセージである。メッセージング・ネットワークの中では、リクエスト・システムがリクエストを送り、応答を受ける。そして応答システムがリクエストを受け、応答を送る。] [0003] リクエスト・システムが接続する複数のメッセージ管理システムを提供することにより、かつリクエスト・システム接続を利用することが可能なメッセージ管理システムにルート付けするワークロード・バランシング機構を用いることによって、或るレベルの高い可用性がメッセージング・ネットワークのフロントエンドで達成されることができる。応答システムが接続することができる複数のメッセージ管理システムを提供することにより、かつリクエスト・メッセージを、利用可能なバックエンド・メッセージ管理システムにルート付けするフロントエンド上のワークロード・バランシング機構を用いることによってバックエンドももっと利用されやすくなる。リクエストは、フロントエンドもしくはバックエンドのメッセージング管理システムが利用できない場合でさえ処理され続けることができる。] 発明が解決しようとする課題 [0004] 全般的な問題は、親和性(affinities)が存在するときの応答のルート付けに関連する可用性の課題である。応答はバックエンド・メッセージング管理システムによって特定のフロントエンド・メッセージング管理システムに典型的にはルート付けされ、ワークロードはバランスされない。ここで使用されるフロントエンド・メッセージング管理システムは、ここを介して対応するリクエスト・メッセージが送られるものである。これはリクエスト・システムがリクエストを典型的には送り、その同じメッセージング管理システムに、リクエスト・システムがその対応する応答を受け取るまで接続され続けるからである。その応答とフロントエンド・メッセージング管理システムとの間に親和性が生まれる。これは、リクエスト・システムのワーク(リクエストを送り、応答を受け取る)を完遂することがそのリクエストを送ったメッセージング管理システムの連続する可用性に依存するが故に、フロントエンドでの応答の可用性に対する問題を生じる。もしメッセージング管理システムが、リクエストがバックエンドにルート付けされた後その応答がフロントエンドにルート付けされる前に障害が起こるなら、その応答はそのフロントエンドのメッセージング管理システムが利用可能になるまでバックエンドで保持される。] [0005] もしリクエスト・システムがフロントエンド・メッセージング管理システムからそれがリクエストを送った後で応答を受け取る前に接続を切ったり接続を切られたりしたら問題がある。リクエスト・システムの接続はワークロード的にバランスされる。従って、リクエスト・システムが(応答を受け取るために)再接続するとき、その接続はそれが元々接続されていたのとは別のフロントエンド・メッセージング管理システムに接続されてワークロードのバランスをとることがあり得る。この結果、正しいフロントエンド・メッセージング管理システムに再接続されるまで、その応答がリクエスト・システムには利用できない状況が生じる。] [0006] この問題に対する既知の解決策の一つはリクエスト・システムのためにそれらの状態次第で別個の接続論理を使用することである。リクエストを送る前に、その接続はワークロードのバランスをとり、リクエストを送った後その応答を受け取る前はワークロードのバランスをとらないが、リクエスト・システムが親和性を有するメッセージング管理システムにその接続がなされる。] [0007] 本発明の第1の側面によれば、メッセージング・ネットワークにおけるメッセージ配布方法であって、一意的な識別子を含むメッセージを生成するステップと、複数個の複製キューの各々に前記メッセージを送るステップとを含み、前記メッセージは消費される前に前記一意的な識別子により識別可能である、メッセージ配布方法が提供される。] [0008] 本発明の第2の側面によれば、メッセージング・ネットワークにおけるメッセージ配布システムであって、1個または複数個のプロセッサ上に提供される複数個のメッセージ管理システムを含むメッセージング・ネットワークと、前記メッセージが読み出される前にアプリケーションにより識別されるように動作可能なメッセージのための複製キューであって、複数個のメッセージ管理システム上で定義可能な前記複製キューとを含み、複数個のメッセージ管理システムのうちのいずれか一つを用いてアクセス可能である複数個の複製キューの各々にメッセージが送られるところのメッセージ配布システムが提供される。] [0009] 本発明の第3の側面によれば、メッセージング・ネットワークにおけるメッセージ配布のためにコンピュータ読取り可能なストレージ媒体上にストアされたコンピュータ・プログラムであって、一意的な識別子を含むメッセージを生成するステップと、前記メッセージを複数個の複製キューの各々に送るステップとを実行するコンピュータ読取り可能なプログラム・コード手段を含み、応答メッセージは消費される前に前記一意的な識別子により識別可能にされているような、コンピュータ・プログラムが提供される。] 課題を解決するための手段 [0010] この解決策には2つのキーとなる部分がある。] [0011] 1)特定のフロントエンド・メッセージング管理システムに一つの応答が送られる代わりに、全てのフロントエンド・メッセージング管理システムに応答が送られるように応答が複製される。] [0012] 2)リクエスト・システムが応答メッセージを受け取るために任意のフロントエンド管理システムに接続することができる。他のフロントエンド・メッセージング管理システム上の応答メッセージは自動的に削除される。] [0013] 本発明の目的は、リクエスト・システムがリクエストを送った同じメッセージング管理システムからの応答を受け取る必要性を無くすことによってリクエスト・システムへの応答の可用性を増すことにある。本発明はまたリクエスト・システムにおける別個の接続論理の必要性を無くして、それらがそのリクエスト・システムの状態に拘わらず、利用可能なメッセージ管理システムに対しワークロードのバランスをとることを、そして任意のフロントエンド・メッセージング管理システムで応答を受け取ることを許容する。] [0014] 本発明とみなされる主題が詳しく指摘され、特許請求の範囲として明示されている。本発明は構成、動作方法の両方についてその目的、特徴および効果もともに、以下の詳細な記述を添付図面とともに参照して読むときもっともよく理解され得る。] 図面の簡単な説明 [0015] 従来技術で知られたようなメッセージング・システムの概略図である。 本発明が実施され得るコンピュータ・システムのブロック図である。 本発明のいろいろな側面による処理のフローチャートである。 本発明のいろいろな側面による処理のフローチャートである。 本発明のいろいろな側面による処理のフローチャートである。 本発明によるシステムのブロック図である。 本発明によるメッセージ・フローを示すシステムの実施例のブロック図である。] 実施例 [0016] 説明の簡潔さおよび明瞭さのため、図に示す要素は必ずしも縮尺比が正確ではないことを理解されたい。例えば、幾つかの要素の寸法は明瞭さのために他の要素に対し誇張されているかもしれない。更に、適切と考えられる場合は、対応する特徴または類似の特徴を示すために図相互間で参照番号が反復されることもある。] [0017] 以下の詳細な説明では、本発明の完全な理解を提供するために幾多の特定の詳細が開示されている。しかし、本発明がこれらの詳細がなくても実施され得ることが当業者には理解できよう。他の例では、周知の方法、手順およびコンポーネントが、本発明を不明瞭にしないために詳細には説明されていない。] [0018] 図1には、メッセージング・ネットワーク・システム100が従来技術で知られたものとして示されている。メッセージング・ネットワーク・システム100の中では、リクエスト・システム101ないし103(リクエストを送り、応答を受ける)および応答システム104ないし106(リクエストを受け、応答を送る)が、別のメッセージ管理システム111ないし113、121ないし123に接続されていてもよい。メッセージング・ネットワーク・システム100はフロントエンドのメッセージ管理システム111ないし113をリクエスト・システム101ないし103の接続のために用い、バックエンドのメッセージ管理システム121ないし123を応答システム104ないし106のために用いる。メッセージ管理システム111ないし113,121ないし123は、例えばキュー・マネジャであってもよい。] 図1 [0019] 或るレベルの高い可用性がメッセージング・ネットワークのフロントエンドで達成されることができる。これはリクエスト・システム101ないし103が接続することができる幾つかのフロントエンドのメッセージ管理システム111ないし113を提供し、かつリクエスト・システムの接続を利用可能なメッセージ管理システム111ないし113にルート付けするワークロード・バランシング機構131(例えば、IPロード・バランサまたはメッセージング管理システム機能)を用いることにより達成されることができる。例えば、図1ではチャネル132がリクエスト・システム102から(ワークロード・バランシングにより選択された)メッセージング管理システム112にでき、そこを通じてメッセージが流れるように示されている。] 図1 [0020] 応答システム104ないし106が接続することができる幾つかのメッセージ管理システム121ないし123を提供することによってバックエンドがもっと利用することができるようになる。フロントエンド・メッセージ管理システム111ないし113上のワークロード・バランシング機構133がリクエストを、利用可能なバックエンド・メッセージング管理システム121ないし123にルート付けする。例えば、図1はバックエンド123に参照番号134で示すようにルート付けられたリクエストと、フロントエンド112に参照番号135で示すようにルート付けされた応答を示す。] 図1 [0021] メッセージング・ネットワーク・システム100は、リクエスト・システム101から応答システム123にフロントエンドないしバックエンドのメッセージ管理システムの111ないし113、121ないし123を介して、その1個もしくは複数個のフロントエンドもしくはバックエンドのメッセージング管理システムが利用できないとしても、リクエストを送ることによって、リクエストを処理し続けることができる。] [0022] 図2を参照すると、メッセージング管理システムが実装されていてもよい実施例のシステムは、バス・システム203を介してメモリ・エレメントに直接的にまたは間接的に結合された少なくとも1個のプロセッサ201を含むプログラム・コードをストアしおよび/もしくは実行するのに適するデータ処理システム200を含む。そのメモリ・エレメントは、そのプログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量記憶装置およびキャッシュ・メモリを含むことができる。そのキャッシュ・メモリは実行中に大容量記憶装置からプログラム・コードが取出されなければならない回数を少なくするために少なくとも幾つかのプログラム・コードの一時的なストレージを提供する。] 図2 [0023] このメモリ・エレメントはシステム・メモリ202を読取専用メモリ(ROM)204およびランダム・アクセス・メモリ(RAM)205の形態で含むことができる。基本入出力システム(BIOS)206がROM204にストアされていてもよい。システム・ソフトウエア207がRAM205にストアされ、オペレーティング・システム(OS)ソフトウエア208を含んでいてもよい。RAM205にはソフトウエア・アプリケーション210もまた含まれていてもよい。] [0024] システム200はまた磁気ハードディスク・ドライブのような1次ストレージ手段211および磁気ディスク・ドライブおよび光ディスク・ドライブのような2次ストレージ手段212を含んでもよい。これらのドライブおよびその関連するコンピュータ読取り可能な媒体がシステム200のためにコンピュータ実行可能な命令、データ構造、プログラム・モジュールおよび他のデータの不揮発性ストレージを提供する。ソフトウエア・アプリケーションはまた1次ストレージ手段211、2次ストレージ手段212およびシステム・メモリ202にストアされていてもよい。] [0025] コンピューティング・システム200は、1個もしくは複数個の遠隔コンピュータへのネットワーク・アダプタ216を介しての論理接続を用いて、ネットワーク環境で動作してもよい。] [0026] 入出力装置213は、直接的にまたは介在するI/Oコントローラを介してそのシステムに結合され得る。ユーザーはコマンドおよび情報をキーボード、ポインティング装置または他の入力装置(例えば、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ(パラボラ・アンテナ)、スキャナー等)などの入力装置を介してシステム200に入力してもよい。出力装置がスピーカー、プリンタ等を含んでもよい。ディスプレイ装置214もシステム・バス203にビデオ・アダプタ215などのインターフェースを介して接続されてもよい。] [0027] メッセージング管理システムはまたレジストリを定義するプログラム、メッセージング管理システム定義、およびローカル・デフォールト・キュー定義を含む。] [0028] ここに記述された方法およびシステムでは、特別のタイプのキューが提供され、これがメッセージを保持するのに使用される。このキューは、複製されたキューすなわち複製キュー(replicated queue、RQ)と呼ばれる。RQはコンシューマーがメッセージ(例えば、特有の識別子を備えた応答メッセージ)を受取ってしまう前にコンシューマーによって一意的に識別され得るメッセージ用に設計される。] [0029] RQは複数のメッセージ管理システム上で各メッセージング管理システム上の手動の定義、または一つの手動の定義および他の管理システム上で定義を複製するための自動定義メカニズムのいずれかを用いて定義される。自動定義メカニズムを用いると、RQの動的生成(例えば、アプリケーションの挙動に応答して定義されるもの)をよりよくサポートする。メッセージング・ネットワークにおけるメッセージング管理システムはメッセージング・ネットワークにおけるRQを自動的に気付くようにさせられる。] [0030] メッセージがRQに送られるとき(例えば応答メッセージ)、それは一意的な識別子を持たねばならない。この一意的な識別子はアプリケーションまたはメッセージング管理システムによって特定され得る。メッセージング管理システムまたはアプリケーションのいずれかがメッセージを複製し、その結果、RQをホストするメッセージング・ネットワークにおける全てのメッセージング管理システムがコピーを受け取る。この複製されたメッセージが任意のメッセージング技法を用いて送られる。] [0031] RQをホストする各メッセージング管理システムは複製されたメッセージのコピーを受け取る。アプリケーションは、一意的な識別子によって識別され、RQをホストするいずれかのメッセージング管理システムに接続することができる。] [0032] アプリケーションが複製されたメッセージのうちの一つを一旦消費してしまうと、そのワークを完遂するが、そのRQをホストする他のメッセージング管理システムがそのメッセージのコピーをなおも保持している。これらの残りのメッセージはシステム・リソースを用い、従って削除されるべきである。この削除が自動的に実行されることが有利である。] [0033] メッセージがアプリケーションにより消費されるとき、そのメッセージ管理システムはRQをホストする全ての他のメッセージ管理システムに通知メッセージを送る。その通知メッセージは任意のメッセージング技法を用いて送られる。] [0034] この通知メッセージは応答が送られたRQの名称および消費されたメッセージの一意的な識別子の両方を含む。この通知メッセージはメッセージ削除コンポーネントに配布される。このコンポーネントは外部プログラムか、またはそのメッセージング・システムの一部であり得る。] [0035] そのメッセージ削除コンポーネントが通知メッセージを受け取ると、それはその一意的に特定されたメッセージをその特定のRQから削除する。他のRQ上の応答メッセージはアプリケーションがそのメッセージを受け取った後幾らかの時間存在していてもよい。これらのメッセージがRQに留まるのは受け入れ可能である。なぜならそれらの存在が他のアプリケーションに悪影響を与えないからである。これは、アプリケーションが、一意的な識別子を用いて、メッセージを消費するからであり、またこれらのメッセージの識別子が他のアプリケーションにより消費されるものと一致しないからである。] [0036] メッセージ削除コンポーネントが、その対応する複製されたメッセージがRQ上に到達する前に通知メッセージを受け取ることがあり得る。従って、その対応する複製されたメッセージが利用可能でないような通知メッセージが保持される。その対応する複製されたメッセージが到達するとき、それとその保持された通知メッセージの両方が削除される。] [0037] 通知メッセージまたは複製メッセージのいずれかが特定のメッセージ管理システムに到達しないことがあり得る。例えば、メッセージ管理システム相互間の通信リンクがダウンしている場合、またはメッセージが時間切れの場合である。通知がその複製されたメッセージと同じ時間満了を有する。] [0038] 要約すると、以下の手順を取る。 ・メッセージがRQに送られると、その送り手の側にあるメッセージ管理システムがそのRQのインスタンスごとにメッセージを複製する。 ・複製されたメッセージがアプリケーションにより受け取られると、RQ上に保持された他のレプリカが自動的に削除される。] [0039] 以下の例は応答を送るためにRQがどのように使用され得るかを説明する。] [0040] 図3では、フローチャート310がリクエスト・システムにより実行されるプロセスのステップが示される。リクエスト・システムはメッセージング・ネットワークに接続し(ステップ311)、特定のフロントエンド・メッセージング管理システムに対しワークロードがバランスされている。リクエスト・システムはRQとして応答の宛先付きのリクエストを生成し、そのリクエストの識別子を保存する(ステップ312)。リクエスト・システムはそのリクエストを送る(ステップ313)。リクエスト・システムは接続を遮断することができるか、または接続が失敗する可能性がある(ステップ314)。] 図3 [0041] メッセージ・ネットワークのワークロード・バランス機構が、そのリクエストが送られるバックエンドのメッセージング管理システムを実行し、選択する。] [0042] 図4では、リクエストが送られるバックエンドのメッセージング管理システムに接続された応答システムにより実行されるプロセス・ステップをフローチャート320が示す。応答システムがリクエストを消費する(ステップ321)。応答システムが応答を生成し、その応答の中にリクエストからの識別子をコピーする(ステップ322)。応答システムはリクエスト中に特定された宛先にその応答を送る(ステップ323)。メッセージング管理システムは特定された宛先がRQであることに気付き、そのRQをホストする全てのメッセージ管理システムにその応答を送る(ステップ325)。] 図4 [0043] 図5では、リクエスト・システムが再接続するときそれによって実行されるプロセスをフローチャート330が示す。リクエスト・システムが再接続し、複数のフロントエンドのメッセージ管理システムのうちの任意の一つへのワークロードがバランスされる(ステップ331)。リクエスト・システムはそのリクエストからその保存された識別子を、その応答を選択的に受け取るために特定し(ステップ332)、そして接続を遮断する(ステップ333)。メッセージング管理システムがその応答をリクエスト・システムに配布するとき、それはそのRQの名称および消費されてきた応答の識別子を含む通知メッセージを生成する(ステップ334)。メッセージング管理システムがその通知メッセージをその特定されたRQの他のホストに送る(ステップ335)。削除通知コンポーネントがその特定された応答を削除する。] 図5 [0044] システム・ダイアグラムが図6に示されるが、そこにはフロントエンド・メッセージ管理システム411ないし413およびバックエンド・メッセージ管理システム421ないし423を含むメッセージング・ネットワーク410を備えたメッセージング・システム400が示される。リクエスト・システム接続421ないし423がフロントエンドのメッセージ管理システム411ないし413の一つにロード・バランスされる(第1のロード・バランシング機構440)。第2のロード・バランシング機構441がフロントエンドのメッセージ管理システム411ないし413からバックエンドのメッセージ管理システム414ないし416にリクエストをロード・バランスする。応答システム431ないし433がバックエンドのメッセージ管理システム414ないし416に接続される。] 図6 [0045] バックエンドのメッセージ管理システム414ないし416は各々がリクエストの宛先450をホストし、フロントエンドのメッセージ管理システム411ないし413の各々がRQ451をホストする。] [0046] 一実施例では、RQが特別のタイプのクラスタ・キューとして実装され得る。ある実装例は、WebSphere MQクラスタ(WebSphere MQはインターナショナル・ビジネス・マシーンズ・コーポレーションの商標)のコンテキスト(context)に記述されている。メッセージング・ネットワークはWebSphere MQクラスタにおけるキュー・マネジャの形式で提供されることができる。その際そのクラスタ中のキュー・マネジャはそのクラスタにおけるRQに自動的に気付かされる。メッセージ消費システムが応答メッセージを生成するとき、それはメッセージの生成システムがリクエストおよび応答を相互に関連付けるのを許容するように、MQMD.MsgldをMQMD.CorrelIdにコピーすることにより、リクエスト・メッセージから応答メッセージへ情報をコピーする。リクエストを最初に書き込んだメッセージ消費システムはフロントエンドのキュー・マネジャのいずれかに接続もしくは再接続したままであり、そのキュー・マネジャ上のRQ上に保持される応答メッセージを受け取る。そのアプリケーションはMQMD.CorrelIdのその相互関連情報を、それが関連する特定の応答メッセージを受け取るために用いる。] [0047] 図7を参照すると、図6のメッセージング・システム400がキュー・マネジャ411ないし416の形式でメッセージ管理システムのWebSphere MQクラスタ410(MYCLUS)のコンテキスト中に示される。3個のバックエンド・キュー・マネジャ414ないし416(QM4、QM5、QM6)および3個のフロントエンド・キュー・マネジャ411ないし413(QM1、QM2、QM3)が示される。メッセージ生成クライアント・アプリケーション421ないし423がロード共有機構440を介してフロントエンド・キュー・マネジャ411ないし413のうちの一つに接続し、リクエスト・メッセージを、全てのバックエンド・キュー・マネジャ414ないし416上でホストされるクラスタ・キュー450(REQ.Q)に書き込み、それから接続を遮断する。バックエンド・キュー・マネジャ414ないし416に接続されたメッセージ消費アプリケーション431ないし433はクラスタ・キュー450(REQ.Q)からリクエスト・メッセージを取り出しRQキュー451(REP.Q)に応答メッセージを書き込む。少し経ってから、いずれかのフロントエンド・キュー・マネジャ411ないし413からその応答が取り出せる。] 図6 図7 [0048] リクエスト・キューが以下の通り作成される。 !QM4 DEF QL(REQ.Q) CLUSTER(MYCLUS) !QM5 DEF QL(REQ.Q) CLUSTER(MYCLUS) !QM6 DEF QL(REQ.Q) CLUSTER(MYCLUS)] [0049] 応答キューが以下の通り作成される。 !QM1 DEFRQ(REP.Q) CLUSTER(MYCLUS) !QM2 DEF RQ(REP.Q) CLUSTER(MYCLUS) !QM3 DEF RQ(REP.Q) CLUSTER(MYCLUS)] [0050] RQが一旦定義されると、その上でそれが定義されるキュー・マネジャは自動的にそのキューに関係する情報(例えば、通知メッセージ)を受領するよう登録される(subscribe)。] [0051] 下記のステップ(図7参照)が、単一のリクエストおよび応答のための振る舞いを説明する。] 図7 [0052] 1)メッセージ生成クライアント・アプリケーションが接続し、特定のフロントエンド・キュー・マネジャに対しワークロードがバランスされる(例えば、IPロード・バランサもしくはWebSphere MQクライアント・チャネル定義テーブルを用いて)。この場合、それがQM3に対しワークロードがバランスされる。] [0053] 2)メッセージ生成クライアント・アプリケーションがリクエスト・メッセージを生成し、REP.QのMQMD.ReplyToQの名称を記入し、MQMD.MsgIdを保存する。] [0054] 3)このメッセージ生成クライアント・アプリケーションがREQ.Qにリクエスト・メッセージを書き込む。REQ.Qがクラスタ・キューなので、QM3がそのことに気付き、それにメッセージをルート付けすることができる。] [0055] 4)クラスタ・ワークロード・バランシング・アルゴリズムが実行され、そしてこの場合にQM6にそのリクエスト・メッセージを送るように選択する。このメッセージはQM6にクラスタ・チャンネルを介して送られ、REQ.Q上に書き込まれる。] [0056] 5)メッセージ生成クライアント・アプリケーションが接続を遮断する(あるいは接続し損なう)。このことがステップ3およびステップ10の間の任意の時点で起こり得ることに留意されたい。] [0057] 6)QM6上のメッセージ消費アプリケーションはそのリクエスト・メッセージを取り出し、処理する(例えば、データベースを更新する)。] [0058] 7)QM6上のメッセージ消費アプリケーションは応答メッセージを生成し、リクエスト・メッセージからのMQMD.Msgldを応答メッセージ中のMQMD.CorrelIdにコピーする。] [0059] 8)QM6上のメッセージ消費アプリケーションはこの応答メッセージをリクエスト・メッセージ(REP.Q)のMQMD.ReplyToQの中に特定されている宛先に応答メッセージを書き込む。] [0060] 9)QM6はREP.QがRQであることに気付き、従って特定された任意のMQOD.ObjectQMgrNameを無視し、その応答メッセージを、REP.Qをホストする全てのキュー・マネジャに発行する。その結果応答メッセージのコピーがQM1、QM2、QM3上のREP.Q上に今や存在することになる。そのObjectQMgrNameを無視するというのが、存在するアプリケーションがRQの利点を生かすのを許容することに留意されたい。] [0061] 10)メッセージ生成クライアント・アプリケーションが接続し、特定のフロントエンド・キュー・マネジャに対し(例えば、IPロード・バランサもしくはWebSphere MQクライアント・チャネル定義テーブルのいずれかを用いて)ワークロードのバランスがとられている。この場合、QM1に対し、ワークロードのバランスがとられている。] [0062] 11)メッセージ生成クライアント・アプリケーションがその応答メッセージ、MQMD.CorrelIdにおいて(そのリクエスト・メッセージからの)その保存されたメッセージIDを特定し、その応答メッセージを取り出し、そして接続を遮断する。] [0063] 12)QM1は、応答メッセージがRQ(REP.Q)から除去されたことを気づき、RQ(REP.Q)の名称および丁度除去されたばかりのその応答メッセージのCorrelID(即ち他のRQ上の他の応答メッセージ中にある同じCorrelID)を含む通知メッセージを自動的に生成する。そこでQM1は、これらの通知を既に受領するよう登録されているREQ.Qの他のホストに通知を発行する。] [0064] 13)QM2およびQM3はその発行を得て、その特定されたRQ(REQ.Q)からのその特定されたメッセージを削除するようにその通知メッセージにおける情報を使用する。ローカルの配布が効力を持たないので、QM1がその通知を受け取らないことに留意されたい。] [0065] 全てのアプリケーション接続と同様、その接続がコミット中に失敗するならそのアプリケーションはそのコミットが完了したか否か確信できない時がある。以下のシナリオは、2つの問題のコミットを記述する。] [0066] 1)そのアプリケーションがコミット・コールを発行し、そのコミットが失敗し、その接続が失敗し、そしてそのアプリケーションがそのコミット・コールから「接続切れ」戻しコードを受け取る。その応答はなおも利用可能である。] [0067] 2)そのアプリケーションがコミット・コールを発行し、そのコミットが成功裏に完了し、その接続が失敗し、そしてそのアプリケーションがそのコミット・コールから「接続切れ」戻しコードを受け取る。その応答はもはや利用可能でない。] [0068] シナリオ1)および2)における問題は、そのコミットが実際に完了したか否かをそのアプリケーションが知らないことである。その同じ問題はコミットする全てのアプリケーションとともに存在する。この解決策は、(個々のメッセージの単一の消費者である)アプリケーションが、もしそのメッセージがそのメッセージング管理システムからもはや利用することができないならそのコミットが働いたと仮定することができることである。2つのかなり簡単な解決策がある。] [0069] a)もしそのアプリケーションがコミット・コールに応答して「接続切れ」を受け取るなら、そのアプリケーションはそのコミットを発行した同じメッセージング管理システムに再接続して応答があるかどうかチェックしなければならない。もしその応答が存在しないなら、それはそのコミットが成功したとみなされることができ、そしてそのアプリケーションが処理を続けることができる。もしその応答が存在するなら、それは再び消費され、そして再びコミットされなければならない。これが親和性(affinity)を生み出すけれども、その「親和性ウインドウ」はそのRQシステムを用いるときかなり引き下げられる。] [0070] b)そのエラーを無視せよ、そしてそのコミットが成功したと仮定して続行せよ。もしそのコミットが成功したなら、その応答はそのRQから除去され、それ以上のアクションを取る必要はない。もしそのコミットが失敗したら、その応答はそのRQ上に留まる。応答を消費した全てのアプリケーションが一意的に識別可能な応答を選択しているので、他のアプリケーションはその留まっている応答を消費することができず、従って今や問題は、その残っている応答を如何にうまくクリアするかである。RQの時間満了または手動でのクリアが使用されることができる。] [0071] この記述した方法およびシステムはリクエスト/応答のシナリオにおける可用性を増す。この解決策は可用性の改善をメッセージ往復時間に最小限の影響しか与えずに提供する。全ての応答が一単位の作業で送られやすいので、もしRQの非常に大きな数のホストがあるなら、複製される応答を送るのに時間の増加が関係したであろう。少なくとも可用性の観点からは、大きな数のRQが必要とされることがあまりないということに注意する価値がある。また、メッセージ往復時間に関連した任意の単位の作業の外での過剰な応答の削減がなされる。] [0072] この解決策はn個のRQを含むネットワークが、そのRQをホストするn−1個までのメッセージ管理システムの失敗のイベントにおいて応答を配布することができるように設計される。典型的には、2個または3個のRQが十分な冗長性を提供すると期待することができる。] [0073] ある(失敗の)シナリオでは、このモデルがタイムリな態様で削除されない複製応答を生じる。この解決策はその応答が(例えば、一意的な識別子により)選択的に処理されることを仮定している。一旦応答が消費されてしまうと、そのアプリケーションにより保持される選択基準はそのアプリケーションが他のRQからの任意の存在する複製応答を読み出そうと試みないようにクリアされる。もし選択的な応答が必要とされなければ、任意のスレッドまたはアプリケーションが応答を処理することができ、かくしてRQの必要性を完全に否定する(単純な宛先で十分である)。] [0074] 本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例、あるいはハードウエアおよびソフトウエアの要素を組み合わせた実施例といった形態をとることができる。好適な実施例では、本発明は、以下に限定されるものではないが、ファームウエア、常駐ソフトウエア、マイクロコードなどを含むソフトウエアで実施される。] [0075] また本発明は、コンピュータまたは任意の命令実行システムにより、またはそれに関連して使用されるプログラム・コードを提供する、コンピュータ可用媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形態をとることができる。この説明の目的上、コンピュータ可用媒体またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスにより、またはそれに関連して使用されるプログラムを含み、ストアし、通信し、伝播し、あるいは移送することができる任意の装置であってよい。] [0076] この媒体は、電子的、磁気的、光学的、電磁的、赤外線の、もしくは半導体のシステム(または装置、デバイス)或いは伝送媒体であってよい。コンピュータ可読媒体の例は半導体もしくは固体素子のメモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、磁気ハードディスクおよび光ディスクを含む。今日の光ディスクの例は、CD−ROM(コンパクト・ディスク読出し専用メモリ)、CD−R/W(コンパクト・ディスク読出し書込み)およびDVDを含む。] [0077] 改良と修正が本発明の範囲から逸れることなく前述のことについて行われることができる。]
权利要求:
請求項1 メッセージング・ネットワークにおけるメッセージ配布方法であって、一意的な識別子を含むメッセージを生成するステップ322と、複数個の複製キュー451の各々に前記メッセージを送るステップ324とを含み、前記メッセージは消費される前に前記一意的な識別子により識別可能である、メッセージ配布方法。 請求項2 複数個の複製キュー451の各々に前記メッセージを送るステップ324が、前記複製キュー451が定義されるメッセージ管理システム411ないし413の各々に前記メッセージを送ることを含む、請求項1に記載の方法。 請求項3 複製されたメッセージが応答メッセージを含む、請求項1または2に記載の方法。 請求項4 前記応答メッセージがリクエスト/応答メッセージング・システムに関連する、請求項3に記載の方法。 請求項5 前記リクエストにおいて特定されるメッセージング管理システム411ないし413が無視される、請求項1ないし4のいずれかに記載の方法。 請求項6 前記一意的な識別子を用いて前記複製キュー451のいずれかから前記メッセージを取り出すステップ333を含む、請求項1ないし5のいずれかに記載の方法。 請求項7 前記複製されたメッセージを削除するための通知メッセージ334を生成するステップであって、前記通知メッセージが前記複製キュー451の名称および前記一意的な識別子を含むものと、前記複製キューが定義されるメッセージング管理システムに前記通知メッセージを発行するステップ335とを含む、請求項1ないし6のいずれかに記載の方法。 請求項8 前記複製されたメッセージが前記複製されたキュー351の一つから除去されたのに応答して前記通知メッセージが発行される、請求項7に記載の方法。 請求項9 メッセージング・ネットワークにおけるメッセージ配布システムであって、1個または複数個のプロセッサ上に提供される複数個のメッセージ管理システム411ないし415を含むメッセージング・ネットワーク400と、前記メッセージが読み出される前にアプリケーションにより識別されるように動作可能なメッセージのための複製キュー451であって、複数個のメッセージ管理システム411ないし413上で定義可能な前記複製キューとを含み、複数個のメッセージ管理システム411ないし415のうちのいずれか一つを用いてアクセス可能である複数個の複製キュー451の各々にメッセージが送られるところのメッセージ配布システム。 請求項10 メッセージング・ネットワーク400が複数個のフロントエンド・メッセージ管理システム411ないし413および複数個のバックエンド・メッセージ管理システム414ないし416を含み、前記システムが前記フロントエンド・メッセージ管理システム411ないし413のうちの一つに接続可能なリクエスト・システム421ないし423と、前記バックエンド・メッセージ管理システム414ないし416のうちの一つに接続可能な応答システム431ないし433とを含む、請求項9に記載のシステム。 請求項11 リクエスト・システム421ないし423およびフロントエンド・メッセージ管理システム411ないし413間の第1のロード・バランシング機構440と、フロントエンド・メッセージ管理システム411ないし413およびバックエンド・メッセージ管理システム414ないし416間の第2のロード・バランシング機構441とを含む、請求項10に記載のシステム。 請求項12 前記複数個のフロントエンド・メッセージ管理システム411ないし413のうちのいずれか一つからリクエスト・システム421ないし423により消費されるため、メッセージのための複製キュー451が複数個の前記フロントエンド・メッセージ管理システム411ないし413上で定義可能である、請求項9ないし11のいずれかに記載のシステム。 請求項13 一意的な識別子を用いて前記複製キュー451のうちのいずれか一つから前記応答を消費するためのリクエスト・システム421ないし423を含む、請求項12に記載のシステム。 請求項14 前記複製されたメッセージが応答メッセージを含む、請求項9ないし13のいずれかに記載のシステム。 請求項15 前記応答メッセージがリクエスト/応答メッセージング・システムに関連する、請求項14に記載のシステム。 請求項16 前記複製キュー451が複数個のメッセージ管理システム411ないし413の各々の上で手動で定義可能である、請求項9ないし15のいずれかに記載のシステム。 請求項17 前記キュー451を複製するために、前記複製キュー451が一つのメッセージ管理システム411ないし413上で手動で定義可能であり、かつ複数個のメッセージ管理システム411ないし413の残りの上で自動的に定義可能である、請求項9ないし15のいずれかに記載のシステム。 請求項18 メッセージ識別子を含むリクエストを受取るための手段と、リクエスト・メッセージ識別子に関連する関連情報を含む応答を生成する手段と、複数個の複製キュー451の各々に前記応答を書き込むところの、前記応答が消費前に一意的な識別子情報により識別可能である手段とを含む、請求項9ないし17のいずれかに記載のシステム。 請求項19 前記リクエストが応答の宛先を含み、複数個のメッセージ管理システム411ないし413上で定義可能な複製キュー451を含む、請求項18に記載のシステム。 請求項20 複数個の複製キューの各々に前記応答を送るための前記手段が、複製キュー451が定義可能なメッセージ管理システム411ないし413の各々に応答を送るための手段を含む、請求項18または19に記載のシステム。 請求項21 前記リクエスト中に特定されるメッセージ管理システム411ないし413を無視するための手段を含む、請求項18ないし20のいずれかに記載のシステム。 請求項22 前記応答を削除するための通知メッセージであって、前記複製キュー451の名称および前記一意的な識別子を含む前記通知メッセージを生成する手段と、前記通知メッセージを、前記複製キュー451をホストするように動作可能なメッセージ管理システム411ないし413に送る手段とを含むメッセージ削除コンポーネントを含む、請求項18ないし21のいずれかに記載のシステム。 請求項23 前記複数個のメッセージ管理システム411ないし413がキュー・マネジャのクラスタを含む、請求項9ないし22のいずれかに記載のシステム。 請求項24 1個もしくは複数個のプロセッサ上に提供される複数個のメッセージ管理システム411ないし415を含むメッセージング・ネットワーク400とともに動作可能なメッセージング・ネットワークにおけるメッセージ配布装置であって、一意的な識別子を含むメッセージを生成する手段と、複数個の複製キュー451の各々に前記メッセージであって、消費前に一意的な識別子により識別される前記メッセージを送る手段324とを含むメッセージ配布装置。 請求項25 複製キュー451が複数個のメッセージ管理システム411ないし413上で定義されることが可能なように動作し得ることと、メッセージが複数個の複製キュー451の各々に送られ、かつメッセージが複数個のメッセージ管理システム411ないし415のうちのいずれか一つを用いてアクセス可能であることよりなる、請求項24に記載の装置。 請求項26 前記メッセージング・ネットワーク400が複数個のフロントエンド・メッセージ管理システム411ないし413と、複数個のバックエンド・メッセージ管理システム414ないし416とを含み、前記装置が前記フロントエンド・メッセージ管理システム411ないし413のうちの一つに接続可能なリクエスト・システム421ないし423と、前記バックエンド・メッセージ管理システム414ないし416のうちの一つに接続可能な応答システム431ないし433とを含む、請求項24に記載の装置。 請求項27 リクエスト・システム421ないし423およびフロントエンド・メッセージ管理システム411ないし413間の第1のロード・バランシング機構440と、フロントエンド・メッセージ管理システム411ないし413およびバックエンド・メッセージ管理システム414ないし416間の第2のロード・バランシング機構441とを含む、請求項26に記載の装置。 請求項28 前記複数個のフロントエンド・メッセージ管理システム411ないし413のうちのいずれか一つからリクエスト・システム421ないし423により消費されるため、メッセージのための複製キュー451が複数個の前記フロントエンド・メッセージ管理システム411ないし413上で定義可能である、請求項24ないし27のいずれかに記載の装置。 請求項29 一意的な識別子を用いて前記複製キュー451のうちのいずれか一つから前記応答を消費するためのリクエスト・システム421ないし423を含む、請求項28に記載の装置。 請求項30 前記複製されたメッセージが応答メッセージを含む、請求項24ないし29のいずれかに記載の装置。 請求項31 前記応答メッセージがリクエスト/応答メッセージング・システムに関連する、請求項30に記載の装置。 請求項32 前記複製キュー451が複数個のメッセージ管理システム411ないし413の各々の上で手動で定義可能である、請求項24ないし31のいずれかに記載の装置。 請求項33 前記キュー451を複製するために、前記複製キュー451が一つのメッセージ管理システム411ないし413上で手動で定義可能であり、かつ複数個のメッセージ管理システム411ないし413の残りの上で自動的に定義可能である、請求項24ないし31のいずれかに記載の装置。 請求項34 メッセージ識別子を含むリクエストを受取るための手段と、リクエスト・メッセージ識別子に関連する関連情報を含む応答を生成する手段と、複数個の複製キュー451の各々に前記応答を書き込むところの、前記応答が消費前に一意的な識別子情報により識別可能である手段とを含む、請求項24ないし33のいずれかに記載の装置。 請求項35 前記リクエストが応答の宛先を含み、複数個のメッセージ管理システム411ないし413上で定義可能な複製キュー451を含む、請求項34に記載の装置。 請求項36 複数個の複製キューの各々に前記応答を送るための前記手段が、複製キュー451が定義可能なメッセージ管理システム411ないし413の各々に応答を送るための手段を含む、請求項34または35に記載の装置。 請求項37 前記リクエスト中に特定されるメッセージ管理システム411ないし413を無視するための手段を含む、請求項34ないし36のいずれかに記載の装置。 請求項38 前記応答を削除するための通知メッセージであって、前記複製キュー451の名称および前記一意的な識別子を含む前記通知メッセージを生成する手段と、前記通知メッセージを、前記複製キュー451をホストするように動作可能なメッセージ管理システム411ないし413に送る手段とを含むメッセージ削除コンポーネントを含む、請求項34ないし37のいずれかに記載の装置。 請求項39 前記複数個のメッセージ管理システム411ないし413がキュー・マネジャのクラスタを含む、請求項24ないし38のいずれかに記載の装置。 請求項40 請求項1ないし8のいずれかに記載の全てのステップを実行するように適用されたプログラム・コード手段を含む、コンピュータ上で実行可能なコンピュータ・プログラム。
类似技术:
公开号 | 公开日 | 专利标题 US10083074B2|2018-09-25|Maximizing use of storage in a data replication environment US9274906B2|2016-03-01|Implementing failover processes between storage stamps US10255343B2|2019-04-09|Initialization protocol for a peer-to-peer replication environment CN102193824B|2016-04-27|虚拟机均质化以实现跨异构型计算机的迁移 US8909698B2|2014-12-09|Grid-enabled, service-oriented architecture for enabling high-speed computing applications US8627136B2|2014-01-07|Non-disruptive failover of RDMA connection US8285849B2|2012-10-09|Storage and service provisioning for virtualized and geographically dispersed data centers JP6353924B2|2018-07-04|ブロックベースストレージに対するデータボリュームの耐久性状態の低減 EP2893688B1|2018-10-24|System and method for supporting message pre-processing in a distributed data grid cluster US7370336B2|2008-05-06|Distributed computing infrastructure including small peer-to-peer applications EP1654645B1|2009-08-19|Fast application notification in a clustered computing system US7548973B2|2009-06-16|Managing a high availability framework by enabling and disabling individual nodes US8954786B2|2015-02-10|Failover data replication to a preferred list of instances US8260924B2|2012-09-04|User load balancing systems and methods thereof US8352634B2|2013-01-08|On-demand propagation of routing information in distributed computing system US7779298B2|2010-08-17|Distributed job manager recovery KR101928596B1|2018-12-12|분산 저장 환경에서의 비동기 복제 기법 JP3851272B2|2006-11-29|ステートフル・プログラム・エンティティの作業負荷管理 US9317384B2|2016-04-19|Cache data processing using cache cluster with configurable modes US10108630B2|2018-10-23|Cluster unique identifier US6857082B1|2005-02-15|Method for providing a transition from one server to another server clustered together Rostanski et al.2014|Evaluation of highly available and fault-tolerant middleware clustered architectures using RabbitMQ US7290086B2|2007-10-30|Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system CN101821993B|2013-01-16|故障恢复进行处理的方法和系统 US9031910B2|2015-05-12|System and method for maintaining a cluster setup
同族专利:
公开号 | 公开日 US20140040401A1|2014-02-06| EP2248311A1|2010-11-10| US9647972B2|2017-05-09| US20150180813A1|2015-06-25| US20170339094A1|2017-11-23| WO2009092676A1|2009-07-30| EP2248311B1|2018-11-21| CN101926138A|2010-12-22| US20170187672A1|2017-06-29| US9769110B2|2017-09-19| CN101926138B|2016-08-03| US10491560B2|2019-11-26| US9021038B2|2015-04-28| KR20100103594A|2010-09-27| US8595301B2|2013-11-26| US20090193090A1|2009-07-30|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JPH09233124A|1996-02-27|1997-09-05|Mitsubishi Electric Corp|パケット通信方式| JP2005318073A|2004-04-27|2005-11-10|Hitachi Ltd|通信装置、その動作プログラム、及び通信方法| JP2007241394A|2006-03-06|2007-09-20|Mitsubishi Electric Corp|分割処理管理装置及び分割処理管理システム及び演算処理実行システム及び分割処理管理方法| JP2007274018A|2006-03-30|2007-10-18|Mitsubishi Electric Corp|無線端末装置及びサーバ装置|US9647972B2|2008-01-25|2017-05-09|Snap Inc.|Message delivery in messaging networks|JPH0839212A|1994-07-25|1996-02-13|Akechi Ceramics Kk|連続鋳造用ノズル| JP3188713B2|1995-08-14|2001-07-16|インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン|メール・システムのための改良されたメッセージ・キューイング分散システム| US7272662B2|2000-11-30|2007-09-18|Nms Communications Corporation|Systems and methods for routing messages to communications devices over a communications network| US6789143B2|2001-09-24|2004-09-07|International Business Machines Corporation|Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries| US20030182464A1|2002-02-15|2003-09-25|Hamilton Thomas E.|Management of message queues| US7606881B2|2002-04-25|2009-10-20|Oracle International Corporation|System and method for synchronization of version annotated objects| JP2004131240A|2002-10-10|2004-04-30|Sharp Corp|シート給送装置およびその装置を備えた画像形成装置| US8549078B2|2003-08-08|2013-10-01|Teamon Systems, Inc.|Communications system providing load balancing based upon connectivity disruptions and related methods| WO2005025155A1|2003-09-05|2005-03-17|Petr Hejl|Reply recognition in communications| US7194516B2|2003-10-23|2007-03-20|Microsoft Corporation|Accessing different types of electronic messages through a common messaging interface| US7584256B2|2004-04-12|2009-09-01|Borderware Technologies Inc.|Replicating message queues between clustered email gateway systems| WO2005112389A2|2004-05-14|2005-11-24|Orderly Mind Limited|Queuing system, method and computer program product for managing the provision of services over a communications network| JP4752363B2|2004-07-21|2011-08-17|ソニー株式会社|コンテンツ処理装置,コンテンツ処理方法及びコンピュータプログラム| JP4480148B2|2004-09-24|2010-06-16|大日本印刷株式会社|転写用マスクのip測定装置および静電吸着方式のチャックへの静電吸着用電圧の供給方法| US7567965B2|2004-10-22|2009-07-28|Microsoft Corporation|Presenting message attachments independent of electronic messages at a user-interface| US9544259B2|2006-11-08|2017-01-10|Open Invention Network, Llc|Apparatus and method for dynamic streaming of multimedia files| US7979497B2|2008-01-25|2011-07-12|International Business Machines Corporation|Message delivery using a plurality of queue managers| US8595301B2|2008-01-25|2013-11-26|International Business Machines Corporation|Message delivery in messaging networks|US7979497B2|2008-01-25|2011-07-12|International Business Machines Corporation|Message delivery using a plurality of queue managers| US9104486B2|2011-11-08|2015-08-11|Mckesson Financial Holdings|Apparatuses, systems, and methods for distributed workload serialization| CN102868594B|2012-09-12|2015-05-27|浪潮电子信息产业有限公司|一种消息处理方法和装置| US9942353B2|2015-06-02|2018-04-10|International Business Machines Corporation|Management of connections within a messaging environment based on the statistical analysis of server responsiveness| US9853933B2|2015-08-13|2017-12-26|60East Technologies, Inc.|Message queue replication with message ownership migration| US9721551B2|2015-09-29|2017-08-01|Amper Music, Inc.|Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions| US10608970B2|2016-04-01|2020-03-31|International Business Machines Corporation|Messaging forwarding system and method| CN108009027B|2017-11-23|2019-09-20|北京百度网讯科技有限公司|队列消息一致性的实现方法、装置、设备及存储介质| CN108289055A|2018-01-05|2018-07-17|创盛视联数码科技(北京)有限公司|一种基于Redis订阅服务的分布式实时聊天系统及方法|
法律状态:
2011-11-11| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111110 | 2013-03-13| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130312 | 2013-09-18| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130917 | 2014-03-05| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140304 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|